The present invention relates to devices, methods, and computer program products for secure data communication according to a network protocol having a plurality of communication layers layered into a protocol stack.
One of the most well-known and oldest layer architectures for network protocols is the OSI (Open Systems Interconnection) reference model of the ITU (International Telecommunication Union) or ISO (International Organisation for Standardization) having the following seven layers: bit transfer layer (layer 1), security layer (layer 2), network layer (layer 3), transport layer (layer 4), session layer (layer 5), presentation layer (layer 6), and application layer (layer 7). The TCP/IP (Transmission Control Protocol/Internet Protocol) reference model, on which most of the modern Internet protocols are based, is also a layered network protocol. In the case of the TCP/IP reference model, only four layers are used by combining the bit transfer layer and security layer to form a network access layer and by combining the session layer, presentation layer, and application layer to form an application layer. Layered network protocols, however, are also used in electronic control units (ECUs) which are intended to communicate securely with one another via bus systems, for example in accordance with IEC standard 61508 or in the vehicle sector in accordance with the ISO standard 26262, derived from the aforementioned IEC standard, in a wide range of ASIL levels (Automotive Safety Integrity Levels), or in communication devices for the networking of vehicles, keyword “car-to-car” (Car2Car) or “car-to-infrastructure” (Car2X).
In order to implement such layered network protocols in terminal devices, the individual layers are often encapsulated in autonomous software modules or tasks, which are connected to one another via precisely defined interfaces or communication channels. The “vertical” stacking so to speak or arrangement one above the other of the software modules replicating the individual protocol layers is also referred to here as a “protocol stack”.
Protocol stacks have to meet a very wide range of demands, which at times are conflicting. On the one hand, they should satisfy increasingly greater security requirements, which is implemented by increasingly more complex cryptographic encryption methods at the level of the individual protocol layers. The software modules in the protocol stack for this purpose also each require a corresponding cryptographic key for encryption and decryption of the data traffic at the level of their layer. On the other hand, protocol stacks should run on processor systems in the most sparing and economical manner possible. These are usually embedded single-chip processor systems, for example for end-user modems (Residential Gateways) or Internet-enabled terminal devices (keyword: “Internet of Things”), in which the protocol stack functions as what is known as middleware. At the same time, the porting effort of the protocol stack from one specific processor or operating system to another should also be as low as possible, which requires a corresponding encapsulation of the software modules via hardware or software abstraction layers.
The significance of protocol stacks as middleware precisely in the heterogeneous environment of the “Internet of Things” is described in Bandyopadhyay S. et al., “Role of Middleware for Internet of Things: A Study”, International Journal of Computer Science & Engineering Survey (IJCSES), vol. 2, no. 3, August 2011. A good overview of the security requirements in such environments is given by Kocher, P., et. al., in “Security as a New Dimension in Embedded System Design”, DAC 2004, 7-11 Jun. 2004, San Diego, Calif., USA.